A mobile computing device, such as a smart phone, contains a multi-processor chip to provide computing power. The multi-processor chip has secure data stored thereon in a One Time Program (OTP) memory. An example of an OTP memory includes an array of electronic fuses that can be programmed once by selectively blowing some of the fuses in the array. For example, a blown fuse may represent a binary one, and an un-blown fuse may represent a binary zero. These fuses may be blown only once and may not be repaired after being blown, so that the data stored by blowing the fuses is considered read-only after programming.
Continuing with the example, the secure data is read during power on or boot up of the chip. Examples of secure data that may be stored include hardware keys, boot read-only memory (ROM) patches, chip configuration information, and Original Equipment Manufacturer (OEM) information. Secure data is directly related to the desired functionality of the chip, and it is considered undesirable for the data to be tampered with. An example of a way to tamper with the data includes a hacker manipulating voltages on the chip to change a data readout or to manipulate control signals to the OTP memory.
One example conventional OTP memory module includes multiple rows and multiple columns. The topmost rows contain a pre-programmed check pattern of binary 0s and 1s. Below the pre-programmed check pattern rows are rows that have secure data. A firmware process reads the check pattern rows during power up to determine whether there is an attack, wherein it is assumed that an attack including lower voltages at the chip would result in the check pattern rows being read out incorrectly. In this manner, the firmware process can compare what it reads out to the known value of the check pattern, and if there is a mismatch, the firmware process may determine that there has been an attack on the OTP module. However, this method may be effective only during power up and may not block attacks once the chip is running and when the secure data is read out in real time.
There is currently a need for a more robust technique to protect secure OTP from a variety of attacks, including attacks that occur after boot-up.